package org.jeecg.pms.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description: pms_race
 * @Author: MxpIO
 * @Date: 2022-06-23
 * @Version: V1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class PmsRace implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private String id;
    /**
     * 赛事编号
     */
    private String raceCode;
    /**
     * 赛事名称
     */
    private String raceName;
    /**
     * 赛事类型（字典）
     */
    private String raceType;
    /**
     * 赛事口号
     */
    private String raceSlogan;
    /**
     * 指导单位
     */
    private String guidanceUnit;
    /**
     * 主办方-多个
     */
    private String[] sponsor;
    /**
     * 承办方-多个
     */
    private String[] contractor;
    /**
     * 协办方-多个
     */
    private String[] coOrganizer;
    /**
     * 地址
     */
    private String address;
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
    private Date startTime;
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
    private Date endTime;
    /**
     * 赛事主题（字典）
     */
    private String raceTheme;
    /**
     * 所属赛道（字典多选）
     */
    private String raceTrack;
    /**
     * 赛事领域（字典多选）
     */
    private String raceDomain;
    /**
     * 渠道类型 1大赛 2项目申报
     */
    private String channelType;
    /**
     * 赛事级别（字典）
     */
    private String raceRank;
//    /**
//     * 赛事联系人-多个
//     */
//    private JSONArray contacts;
    /**
     * 上传大赛通知文件地址
     */
    private String noticeFileUrl;
    /**
     * 参赛方式-字典多选
     */
    private String[] competitionMethod;
    /**
     * 组队方式-字典多选
     */
    private String[] teamingMethod;
    /**
     * 参赛规则-1单赛道 2多赛道
     */
    private String competitionRules;
    /**
     * 评分人数
     */
    private String ratersNum;
    /**
     * 评分规则 1平均分 2去头尾取平均
     */
    private String ratersRule;
    /**
     * 规则描述
     */
    private String ruleInfo;
    /**
     * 奖项类型 1所属赛道
     */
    private String awardType;
//    /**
//     * 赛事奖品-多个
//     */
//    private JSONArray racePrizes;
    /**
     * 基本项目信息（字典多选）
     */
    private String[] projectInfo;
    /**
     * 赛人员附加个人信息（字典多选）
     */
    private String[] participantInfo;
    /**
     * 当前阶段id
     */
    private String stageId;
    /**
     * 当前阶段名称
     */
    private String stageName;
    /**
     * 当前阶段级别
     */
    private Integer stageGrade;
    /**
     * 状态 0禁用 1正常
     */
    private String status;
    /**
     * 删除状态(0正常 1删除)
     */
    private String delFlag;
    /**
     * 创建人
     */
    private String createBy;
    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 更新人
     */
    private String updateBy;
    /**
     * 更新时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    private List<PmsRaceFile> fileList;

    private List<PmsRaceStage> stageList;

    private String userId;

    private String raceStatus;
}
